package frames;

import java.awt.Container;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;
import javax.swing.JTextField;

import javax.swing.WindowConstants;



import controlador.Sistema;

import negocio.Sede;
import negocio.Vehiculo;



public class AltaVehiculoFrame extends javax.swing.JFrame {

	

	private JMenuBar menuBar;	
	private JMenu mnAdmV;
	private JMenuItem mnAltaVeh;
	private JMenuItem mnBajaVeh;
	private JMenuItem mnModVeh;
	private JMenu mnAdmT;
	private JMenuItem mnAltaTec;
	private JMenuItem mnBajaTec;
	private JMenuItem mnModTec;
	private JMenu mnMov;
	private JMenuItem mnRegisMov;	
	private JMenu mnMant;
	private JLabel lblEstadoAct;
	private JLabel lblKms;
	private JLabel lblKmsi;
	private JLabel lblDominio;
	private JMenuItem mnGenMant;
	private JMenuItem mnAutMant;
	private JMenu mnReports;
	private JTextField txtModelo;
	private JLabel lblModelo;
	private JTextField txtGasto;
	private JLabel lblGasto;
	private JMenuItem mnGenRep;
	private JComboBox cmbCombustible;
	private JLabel lblCombustible;
	private JComboBox cmbEnViaje;
	private JComboBox cmbNroSedeAct;
	private JComboBox cmbNroSede;
	private JLabel lblEnViaje;
	private JLabel lblNroSedeAct;
	private JLabel lblNroSede;
	private JButton btnCancelar;
	private JButton btnAceptar;
	private JComboBox cmbEstado;
	private JComboBox cmbEstadoAct;
	private JTextField txtKms;
	private JLabel jtipo;
	private JTextField jTxtTipo;
	private JTextField txtKmsi;
	private JTextField txtDominio;
	private JLabel lblEstado;
	private JMenuItem mnSalir;	
	private JSeparator sep;	
	private JLabel lblLogo;
	
	private Sistema sistema;

	
	public AltaVehiculoFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		sistema=Sistema.getInstance();
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setBackground(new java.awt.Color(255,255,255));
			this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("mgasbar.png")).getImage());
			getContentPane().setLayout(null);
			this.setTitle("MetroGas");
			{/*
				BufferedImage myPicture = ImageIO.read(new File("mgas.png"));
				lblLogo = new JLabel(new ImageIcon(myPicture));
				getContentPane().add(lblLogo);
				lblLogo.setBackground(new java.awt.Color(0,64,0));
				lblLogo.setBounds(429, 121, 150, 65);*/
			}
			{
				lblDominio = new JLabel();
				getContentPane().add(lblDominio);
				lblDominio.setText("Dominio:");
				lblDominio.setBounds(69, 55, 68, 15);
			}
			{
				lblKmsi = new JLabel();
				getContentPane().add(lblKmsi);
				lblKmsi.setText("Kms Iniciales:");
				lblKmsi.setBounds(71, 78, 100, 19);
			}
			{
				lblKms = new JLabel();
				getContentPane().add(lblKms);
				lblKms.setText("Kms:");
				lblKms.setBounds(71, 100, 79, 23);
			}
			
			{
				lblEstadoAct = new JLabel();
				getContentPane().add(lblEstadoAct);
				lblEstadoAct.setText("Estado Actual:");
				lblEstadoAct.setBounds(64, 157, 107, 24);
			}
			{
				lblEstado = new JLabel();
				getContentPane().add(lblEstado);
				lblEstado.setText("Estado Activo:");
				lblEstado.setBounds(66, 187, 115, 20);
			}
			{
				txtDominio = new JTextField();
				getContentPane().add(txtDominio);
				txtDominio.setText("");
				txtDominio.setBounds(157, 50, 127, 25);
			}
			{
				txtKmsi = new JTextField();
				getContentPane().add(txtKmsi);
				txtKmsi.setText("");
				txtKmsi.setBounds(157, 78, 127, 22);
			}
			{
				txtKms = new JTextField();
				getContentPane().add(txtKms);
				txtKms.setText("");
				txtKms.setBounds(157, 105, 127, 22);
			}
			
			{
//				ComboBoxModel cmbEstadoAct = 
//						new DefaultComboBoxModel(
//								new String[] { "Estado Actual" });
				cmbEstadoAct = new JComboBox();
				cmbEstadoAct.addItem("Estado Actual");
				cmbEstadoAct.addItem("En Sede");
				cmbEstadoAct.addItem("Fuera Sede");
				getContentPane().add(cmbEstadoAct);
//				cmbEstadoAct.setModel(cmbEstadoAct);
				cmbEstadoAct.setBounds(157, 159, 127, 22);
			}
			{
//				ComboBoxModel cmbEstadoModel = 
//						new DefaultComboBoxModel(
//								new String[] { "Estado" , "Activa" , "Inactiva" });
				cmbEstado = new JComboBox();
				cmbEstado.addItem("Estado");
				cmbEstado.addItem("Si");
				cmbEstado.addItem("No");
				getContentPane().add(cmbEstado);
//				cmbEstado.setModel(cmbEstadoModel);
				cmbEstado.setBounds(157, 186, 127, 22);
			}
			{
				lblNroSede = new JLabel();
				getContentPane().add(lblNroSede);
				lblNroSede.setText("Sede Base:");
				lblNroSede.setBounds(64, 215, 83, 21);
			}
			{
				lblNroSedeAct = new JLabel();
				getContentPane().add(lblNroSedeAct);
				lblNroSedeAct.setText("Sede Actual:");
				lblNroSedeAct.setBounds(65, 240, 114, 23);
			}
			{
				lblEnViaje = new JLabel();
				getContentPane().add(lblEnViaje);
				lblEnViaje.setText("En Viaje:");
				lblEnViaje.setBounds(66, 268, 105, 27);
			}
			{
//				ComboBoxModel cmbNroSedeModel = 
//						new DefaultComboBoxModel(
//								new String[] { "Item One", "Item Two" });
				cmbNroSede = new JComboBox(sistema.getSedes());
				getContentPane().add(cmbNroSede);
//				cmbNroSede.setModel(cmbNroSedeModel);
				cmbNroSede.setBounds(157, 213, 127, 22);
			}
			{
//				ComboBoxModel cmbNroSedeActModel = 
//						new DefaultComboBoxModel(
//								new String[] { "Item One", "Item Two" });
				cmbNroSedeAct = new JComboBox(sistema.getSedes());
				getContentPane().add(cmbNroSedeAct);
//				cmbNroSedeAct.setModel(cmbNroSedeActModel);
				cmbNroSedeAct.setBounds(157, 240, 127, 22);
			}
			{
//				ComboBoxModel cmbEnViajeModel = 
//						new DefaultComboBoxModel(
//								new String[] { "Item One", "Item Two" });
				cmbEnViaje = new JComboBox();
				cmbEnViaje.addItem("En Viaje");
				cmbEnViaje.addItem("Si");
				cmbEnViaje.addItem("No");
				getContentPane().add(cmbEnViaje);
//				cmbEnViaje.setModel(cmbEnViajeModel);
				cmbEnViaje.setBounds(157, 267, 127, 22);
			}
			{
				lblCombustible = new JLabel();
				getContentPane().add(lblCombustible);
				lblCombustible.setText("Combustible:");
				lblCombustible.setBounds(420, 44, 92, 22);
			}
			{
//				ComboBoxModel cmbCombustibleModel = 
//						new DefaultComboBoxModel(
//								new String[] { "Item One", "Item Two" });
				cmbCombustible = new JComboBox();
				cmbCombustible.addItem("Combustible");
				cmbCombustible.addItem("Nafta");
				cmbCombustible.addItem("Gasoil");
				getContentPane().add(cmbCombustible);
//				cmbCombustible.setModel(cmbCombustibleModel);
				cmbCombustible.setBounds(518, 51, 121, 22);
			}
			{
				lblGasto = new JLabel();
				getContentPane().add(lblGasto);
				lblGasto.setText("Gasto:");
				lblGasto.setBounds(429, 81, 69, 21);
			}
			{
				txtGasto = new JTextField();
				getContentPane().add(txtGasto);
				txtGasto.setBounds(518, 78, 121, 22);
			}
			{
				lblModelo = new JLabel();
				getContentPane().add(lblModelo);
				lblModelo.setText("Modelo:");
				lblModelo.setBounds(429, 217, 37, 15);
			}
			{
				txtModelo = new JTextField();
				getContentPane().add(txtModelo);
				txtModelo.setBounds(518, 213, 121, 22);
			}
			{
				btnAceptar = new JButton();
				getContentPane().add(btnAceptar);
				btnAceptar.setText("Aceptar");
				btnAceptar.setBounds(412, 274, 100, 32);
				btnAceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						
						if(txtDominio.getText().equals("") || txtKmsi.getText().equals("") ||
								txtKms.getText().equals("")  ||
								txtGasto.getText().equals("") || txtModelo.getText().equals("")){
									Toolkit.getDefaultToolkit().beep();
									JOptionPane.showMessageDialog(null, "Debe Ingresar todos los campos", "Error", JOptionPane.ERROR_MESSAGE);
						}
						else{
							if (cmbEstadoAct.getSelectedIndex()== 0 || cmbEstado.getSelectedIndex()== 0 ||
									cmbNroSede.getSelectedIndex()== 0 || cmbNroSedeAct.getSelectedIndex()== 0 ||
									cmbEnViaje.getSelectedIndex()== 0 ||cmbCombustible.getSelectedIndex()== 0){
								Toolkit.getDefaultToolkit().beep();
								JOptionPane.showMessageDialog(null, "Debe Ingresar todos los campos", "Error", JOptionPane.ERROR_MESSAGE);
							}
							else{
								Vehiculo vehiculo = new Vehiculo();
								vehiculo.setDominio(txtDominio.getText());
								float a = Float.parseFloat(txtKmsi.getText());
								vehiculo.setKmsi(a);
								a = Float.parseFloat(txtKms.getText());
								vehiculo.setKms(a);
//								SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyy");
//								Date fecha = null;
//								try{
//									fecha = (Date) df.parse(txtFecha.getText());
//								} catch (ParseException e){
//									e.printStackTrace();
//								}
								if (cmbEstadoAct.getSelectedIndex()!= 0){
									if(cmbEstadoAct.getSelectedIndex()== 1)
										vehiculo.setEstadoAct(true);
									else
										vehiculo.setEstadoAct(false);
								}
								if (cmbEstado.getSelectedIndex()!= 0){
									if(cmbEstado.getSelectedIndex()== 1)
										vehiculo.setEstado(true);
									else
										vehiculo.setEstado(false);
								}
								vehiculo.setSede((Sede)cmbNroSede.getSelectedItem());
								vehiculo.setSedeAct((Sede)cmbNroSedeAct.getSelectedItem());
								if (cmbEnViaje.getSelectedIndex()!= 0){
									if(cmbEnViaje.getSelectedIndex()== 1)
										vehiculo.setEnViaje(true);
									else
										vehiculo.setEnViaje(false);
								}
								if (cmbCombustible.getSelectedIndex()!= 0){
									if(cmbCombustible.getSelectedIndex()== 1)
										vehiculo.setCombustible("Nafta");
									else
										vehiculo.setCombustible("Gasoil");
								}
								a = Float.parseFloat(txtGasto.getText());
								vehiculo.setGastos(a);
								vehiculo.setModelo(txtModelo.getText());		
								vehiculo.setTipo(jTxtTipo.getText());
								boolean alta = sistema.altaVehiculo(vehiculo);
								if(alta == true){
									Toolkit.getDefaultToolkit().beep();
									JOptionPane.showMessageDialog(null, "El Vehiculo se ingreso satisfactoriamente", "Aviso", JOptionPane.INFORMATION_MESSAGE);
								}
								else{
									Toolkit.getDefaultToolkit().beep();
									JOptionPane.showMessageDialog(null, "El Vehiculo ya existe", "Error", JOptionPane.ERROR_MESSAGE);
								}
								//limpiarCampos();
							}
						}	
					}
				});
			}
			{
				btnCancelar = new JButton();
				getContentPane().add(btnCancelar);
				btnCancelar.setText("Cancelar");
				btnCancelar.setBounds(530, 274, 97, 34);
				btnCancelar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						MenuFrame asd=new MenuFrame();
						dispose();
						
					}
				});
			}			
			{
				jtipo = new JLabel();
				getContentPane().add(jtipo);
				jtipo.setText("Tipo:");
				jtipo.setBounds(433, 107, 78, 22);
			}
			{
				jTxtTipo = new JTextField();
				getContentPane().add(jTxtTipo);
				jTxtTipo.setBounds(518, 112, 121, 20);
			}
			{
				menuBar = new JMenuBar();
				setJMenuBar(menuBar);
				{
					mnAdmV = new JMenu();
					menuBar.add(mnAdmV);
					mnAdmV.setText("Administrar Vehiculo");
					{
						mnAltaVeh = new JMenuItem();
						mnAdmV.add(mnAltaVeh);
						mnAltaVeh.setText("Alta");
						mnAltaVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AltaVehiculoFrame a = new AltaVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
								
								
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmV.add(sep);
					}
					{
						mnBajaVeh = new JMenuItem();
						mnAdmV.add(mnBajaVeh);
						mnBajaVeh.setText("Baja");
						mnBajaVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									BajaVehiculoFrame a = new BajaVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmV.add(sep);
					}
					{
						mnModVeh = new JMenuItem();
						mnAdmV.add(mnModVeh);
						mnModVeh.setText("Modificar");
						mnModVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									ModVehiculoFrame a = new ModVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}					
				}
				{
					mnAdmT = new JMenu();
					menuBar.add(mnAdmT);
					mnAdmT.setText("Administrar Tecnico");
					{
						mnAltaTec = new JMenuItem();
						mnAdmT.add(mnAltaTec);
						mnAltaTec.setText("Alta");
						mnAltaTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AltaTecnicoFrame a = new AltaTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmT.add(sep);
					}
					{
						mnBajaTec = new JMenuItem();
						mnAdmT.add(mnBajaTec);
						mnBajaTec.setText("Baja");
						mnBajaTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								

								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									BajaTecnicoFrame a = new BajaTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmT.add(sep);
					}
					{
						mnModTec = new JMenuItem();
						mnAdmT.add(mnModTec);
						mnModTec.setText("Modificar");
						mnModTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									ModTecnicoFrame a = new ModTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnMov = new JMenu();
					menuBar.add(mnMov);
					mnMov.setText("Movimientos");
					{
						mnRegisMov = new JMenuItem();
						mnMov.add(mnRegisMov);
						mnRegisMov.setText("Registrar");
						mnRegisMov.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									RegisMovFrame a = new RegisMovFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
								
							}
						});
					}
				}
				{
					mnMant = new JMenu();
					menuBar.add(mnMant);
					mnMant.setText("Mantenimiento");
					{
						mnGenMant = new JMenuItem();
						mnMant.add(mnGenMant);
						mnGenMant.setText("Generar");
						mnGenMant.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									GenMantFrame a = new GenMantFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnMant.add(sep);
					}
					{
						mnAutMant = new JMenuItem();
						mnMant.add(mnAutMant);
						mnAutMant.setText("Autorizar");
						mnAutMant.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AutMantFrame a = new AutMantFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnReports = new JMenu();
					menuBar.add(mnReports);
					mnReports.setText("Reportes");
					{
						mnGenRep = new JMenuItem();
						mnReports.add(mnGenRep);
						mnGenRep.setText("Generar");
						mnGenRep.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									GenRepFrame a = new GenRepFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
			}
			pack();
			this.setSize(700, 400);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
		setVisible(true);
	}
	private void limpiarCampos(){		
		txtDominio.setText("");
		txtKmsi.setText("");
		txtKms.setText("");
		cmbEstadoAct.setSelectedIndex(0);
		cmbEstado.setSelectedIndex(0);
		cmbNroSede.setSelectedIndex(0);
		cmbNroSedeAct.setSelectedIndex(0);
		cmbEnViaje.setSelectedIndex(0);
		cmbCombustible.setSelectedIndex(0);
		txtGasto.setText("");
		txtModelo.setText("");	
	}

}
